package com.algrithom.sort;

import java.util.Arrays;

import com.util.CommonUtil;

/**
 * @author think
 * @version 1.0.0
 */
class BubbleSort {
    
    public static void main(String[] args){
        Integer[] array = new Integer[]{1,3,4,2,1,10,5};
        bubbleSort(array);
        System.out.println(Arrays.toString(array));
    }
    
    /**
     * 冒泡排序
     */
    private static void bubbleSort(Integer[] array){
        int temp;
        int len = array.length;
        // 外层循环：每循环一次就确定了一个相对最大元素
        for (int i = 0; i < len - 1; i++) {
            // 内层循环：有i个元素已经排好，根据i确定本次的比较次数
            for (int j = 1; j < len - i; j++) {
                // 如果前一位大于后一位，交换位置
                if (array[j - 1] > array[j]) {
                    temp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = temp;
                }
            }
            System.out.print("第" + (i + 1) + "轮排序结果：");
            CommonUtil.display(array);
        }
    }
}
